习题3.1特殊排序
描述
输入一系列整数，将其中最大的数挑出(如果有多个，则挑出一个即可)，并将剩下的数进行排序，如果无剩余的数，则输出-1。
输入描述：
输入第一行包括1个整数N，1<=N<=1000，代表输入数据的个数。 接下来的一行有N个整数。
输出描述：
可能有多组测试数据，对于每组数据， 第一行输出一个整数，代表N个整数中的最大值，并将此值从数组中去除，将剩下的数进行排序。 第二行将排序的结果输出。
示例
输入：
4
1 3 4 2

输出：
4
1 2 3

#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==1)
        {
            int x;
            scanf("%d",&x);
            printf("%d\n",x);
            printf("-1");
        }
        else
        {
            int num[n];
            for(int i=0;i<n;i++)
                scanf("%d",&num[i]);
            int maxi=0,max=num[0];
            for(int i=0;i<n;i++)
            {
                if(num[i]>max)
                {
                    max=num[i];
                    maxi=i;
                }
            }
            num[maxi]=num[n-1];
            sort(num,num+n-1);
            printf("%d\n",max);
            for(int i=0;i<n-1;i++)
            {
                printf("%d ",num[i]);
            }
        }
    }
    return 0;
}
